package FulbitoFacil.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import FulbitoFacil.excepcion.DAOExcepcion;
import FulbitoFacil.modelo.Cancha;
import FulbitoFacil.modelo.Publicidad;
import FulbitoFacil.util.ConexionBD;

public class PublicidadDAO extends BaseDAO{
	
	public String insertar(Publicidad p) throws DAOExcepcion {
		String mensaje="";
		System.out.println("PublicidadDAO: insertar()");
		String query = "INSERT INTO publicidad(titulo,contenido,fecha_ini_pub,fecha_fin_pub,tarifa_pub,num_clicks,posicion_pub,id_Persona) VALUES (?,?,?,?,?,?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		int idNroArmado=0;
		try {
			con = ConexionBD.obtenerConexion();
			
			stmt = con.prepareStatement(query);
			stmt.setString(1,p.getTitulo());
			stmt.setString(2, p.getContenido());
			stmt.setString(3, p.getFechaInicio());
			stmt.setString(4,p.getFechaFinal());
			stmt.setDouble(5,p.getTarifa());
			stmt.setDouble(6,p.getNumeroClicks());
			stmt.setDouble(7,p.getUbicacion());
			stmt.setInt(8,p.getIdPersona());
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}
			else
			{
				String ConsultarIdGenerado="SELECT LAST_INSERT_ID()";
				stmt=con.prepareStatement(ConsultarIdGenerado);
				rs=stmt.executeQuery();
				if(rs.next())
				{
					idNroArmado=rs.getInt(1);
				}
				mensaje="Publicidad Grabada Correctamente";
				
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return mensaje;
	}

	public boolean ValidarNombreDuplicado(Publicidad p) throws DAOExcepcion 
	{
		boolean valor=true;
		System.out.println("PublicidadDao: ValidarNombreDuplicado()");
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			String query = "select count(*) as Nro from publicidad where titulo=? and id_Persona=?";
			stmt = con.prepareStatement(query);
			//System.out.println(objSala.getNombreSala());
			stmt.setString(1,p.getTitulo());
			stmt.setInt(2,p.getIdPersona());
			rs = stmt.executeQuery();
			rs.first();
			int Nro=rs.getInt("Nro");
			System.out.println(Nro);
			if (Nro>0)
			{
				valor=false;
			}
			else
			{
				valor=true;
			}
			
		} catch (SQLException e) 
		{
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		}
		finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return valor;
	}
	
}

